Actualmente estoy usando firebase para la autenticación en mi aplicación web y un problema particular al que me he enfrentado es que, aunque el usuario no se desconectó de la aplicación, si vuelvo a cargar la página e intento acceder al token de acceso del usuario accessToken usando el siguiente fragmento de onAuthStateChanged
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { const userAccessToken = user?.accesstoken; doStuff(userAccessToken); // some placeholder function which takes the `userAccessToken` as one of the parameters }); El objeto user es null , lo que indica que el usuario ha cerrado la sesión. ¿Cómo evito que esto suceda? ¿Hay alguna manera de garantizar que el usuario permanezca conectado a menos que cierre sesión explícitamente en la aplicación?
onAuthStateChanged siempre debe devolver al user como not null a menos que cierre la sesión. Las recargas de página o cualquier otro tipo de navegación u operación no deben afectar a este estado.
Esto ha sido particularmente un problema ya que necesito el token jwt del usuario actualmente conectado para realizar tareas de autorización en el backend. La función firebase-admin
const decodedToken = await admin.auth().verifyIdToken(authJwtToken); al recibir errores null
FirebaseAuthError: error al decodificar el token de ID de Firebase. Asegúrese de pasar la cadena completa JWT que representa un token de ID.